package org.example2;

import java.util.concurrent.CompletableFuture;

public class AsyncCallback {
    public static void main(String[] args) throws Throwable{
        System.out.println("main线程开始...");

        // 异步执行任务
        CompletableFuture<Void> voidCompletableFuture = CompletableFuture.supplyAsync(() -> {
           //异步执行任务的逻辑
            try {
                System.out.println("任务执行中....");
                Thread.sleep(3000); // 模拟耗时操作
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "异步任务完成,计算结果为:54";
        }).thenAccept(result -> {
            // 回调逻辑:异步任务完成后自动执行
            System.out.println("回调收到结果: " + result);
        });

        System.out.println("main线程继续执行...");
        Void unused = voidCompletableFuture.get();
        System.out.println(unused);
        System.out.println("main线程结束执行...");
    }
}
